#pragma once
class mockup
{
	template <typename T>
	struct node
	{
		node* left_child;
		node* right_child;
		node* parent;
		T value;
	};

	template <typename T>
	class binary_search_tree
	{
	public:
		void insert(const T element)
		{
			insert_recursively(element, root)
		}

	private:
		node<T> root;

		void insert_recursively(const T& element, node* node_ptr)
		{
			if (node_ptr.value < element)
			{
				insert_recursively(element, node_ptr->left_child);
			}
			else if (node_ptr.value > element)
			{
				insert_recursively(element, node_ptr->right_child);
			}
			else
			{
				node* n = new node();
				n.value = element;
				//make n's parent the node_ptr's parent
				//make node_ptr's parent n
			}
		}
	};




public:

	mockup()
	{
	}

	~mockup()
	{
	}
};

